package br.com.seosoft.simplecalcfinan;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.View;
import android.widget.EditText;
import android.widget.LinearLayout;
import br.com.seosoft.simplecalcfinan.bancoDados.BancoDados;
import br.com.seosoft.simplecalcfinan.utils.ChangeLogDialog;
import br.com.seosoft.simplecalcfinan.utils.Propaganda;

import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuItem;
import com.google.android.gms.ads.AdRequest;
import com.google.android.gms.ads.AdSize;
import com.google.android.gms.ads.AdView;

public class Ed_Grupos extends ActivyGeral {
	/**
	 * @see android.app.Activity#onCreate(Bundle)
	 */

	public String acao = null;
	public String descricao_grupo = null;
	public String saldo_conta = null;

	public String id_grupo = null;
	private AdView adView;
	private MenuItem salvar;
	private EditText tvDescricaoGrupo;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		// TODO Insira seu c��digo aqui
		setTitle(R.string.pasta);
		setContentView(R.layout.editar_grupo);

		tvDescricaoGrupo = (EditText) findViewById(R.id.etDescricao_grupo);
		ObterParamsTela();

		Propaganda propaganda = new Propaganda();

		if (!propaganda.verificarClienteJaPago(this)) {
			mostrarBanner();
		}

		tvDescricaoGrupo.setOnKeyListener(new View.OnKeyListener() {

			@Override
			public boolean onKey(View v, int keyCode, KeyEvent event) {
				// TODO Auto-generated method stub

				if (keyCode == KeyEvent.KEYCODE_ENTER) {
					salvar();
					return true;
				}
				return false;
			}
		});
	}

	@Override
	public boolean onPrepareOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub

		MenuItem logout = (MenuItem) menu.findItem(R.id.menuSair);

		if (geral.logado == true) {
			logout.setVisible(true);
		}
		salvar = (MenuItem) menu.findItem(R.id.menuSalvar);
		salvar.setVisible(true);
		return super.onPrepareOptionsMenu(menu);
	}

	@Override
	public boolean onCreateOptionsMenu(Menu menu) {
		// TODO Auto-generated method stub

		getSupportMenuInflater().inflate(R.menu.menu, menu);

		return super.onCreateOptionsMenu(menu);
	}

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {

		case android.R.id.home:

			Intent parentActivityIntent = new Intent(this, inicial.class);
			parentActivityIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
					| Intent.FLAG_ACTIVITY_NEW_TASK);
			startActivity(parentActivityIntent);
			finish();
			return true;
		case R.id.menuRate:

			Uri uri = Uri.parse("market://details?id="
					+ getApplicationContext().getPackageName());
			Intent goToMarket = new Intent(Intent.ACTION_VIEW, uri);
			startActivity(goToMarket);
			return true;
		case R.id.meuNovidades:

			novidades();
			return true;
		case R.id.menuConfig:

			startActivityForResult(new Intent(getApplicationContext(),
					Config.class), 1);

			return true;

		case R.id.menuSair:

			geral.logado = false;

			android.os.Process.killProcess(android.os.Process.myPid());
			return true;

		case R.id.menuSalvar:

			salvar();
			return true;

		}
		return super.onOptionsItemSelected(item);
	}

	public void ObterParamsTela() {

		EditText edtDescricaoGrupo = (EditText) findViewById(R.id.etDescricao_grupo);

		// Obetem parametros da tela principal

		Intent it = getIntent();
		if (it != null) {
			acao = it.getStringExtra("acao");
			descricao_grupo = it.getStringExtra("descricao_grupo");
			saldo_conta = it.getStringExtra("saldo_conta");
			id_grupo = it.getStringExtra("id_grupo");
			if (acao != null) {
				Log.i(geral.LogCat, "acao: " + acao);
			}
			if (id_grupo != null) {
				Log.i(geral.LogCat, "ID_GRUPO: " + id_grupo);
				Log.i(geral.LogCat, "Desc_GRUPO: " + descricao_grupo);
				Log.i(geral.LogCat, "saldo_contas: " + saldo_conta);
				edtDescricaoGrupo.setText(descricao_grupo);

			}
		}
	}// fim ObterParamsTela

	// MENU NOVIDADES ALERT DIALOG

	public void novidades() {

		// AlertDialog.Builder builder = new AlertDialog.Builder(this);
		// // Get the layout inflater
		// LayoutInflater inflater = getLayoutInflater();
		//
		// builder.setCancelable(false);
		// builder.setTitle(R.string.novidades);
		//
		// // Inflate and set the layout for the dialog
		// // Pass null as the parent view because its going in the dialog
		// layout
		// builder.setView(inflater.inflate(R.layout.novidades, null))
		// // Add action buttons
		// .setNeutralButton(android.R.string.ok,
		// new DialogInterface.OnClickListener() {
		// @Override
		// public void onClick(DialogInterface dialog, int id) {
		// // sign in the user ...
		// dialog.dismiss();
		// }
		// });
		//
		// AlertDialog dialog = builder.create();
		// dialog.show();
		ChangeLogDialog changeLog = new ChangeLogDialog(this);
		changeLog.show();

	}

	// exibe banner google
	public void mostrarBanner() {

		if (!preference.getBoolean(geral.REMOVEU_ADS, true)) {
			if (getResources().getString(R.string.TAMANHO_BANNER).equals(
					"BANNER")) {

				// Create the adView
				adView = new AdView(this);
				adView.setAdUnitId(geral.id_AdMob);
				adView.setAdSize(AdSize.BANNER);
				Log.d(geral.LogCat, "***** TELA PEQUENA ");
			} else {
				// Create the adView
				adView = new AdView(this);
				adView.setAdUnitId(geral.id_AdMob);
				adView.setAdSize(AdSize.BANNER);
				Log.d(geral.LogCat, "***** TELA NORMAL ++ ");
			}

			// RevMobBanner banner = revmob.createBanner(this);
			// ViewGroup view = (ViewGroup) findViewById(R.id.BannerEditaGrupo);
			// view.addView(banner);

			// Lookup your LinearLayout assuming it���s been given
			// the attribute android:id="@+id/mainLayout"
			LinearLayout layout = (LinearLayout) findViewById(R.id.BannerEditaGrupo);
			layout.removeAllViewsInLayout();

			// Add the adView to it
			layout.addView(adView);

			// Initiate a generic request to load it with an ad
			AdRequest request = new AdRequest.Builder().build();

			// request.addTestDevice(AdRequest.TEST_EMULATOR);// Emulador
			// request.addTestDevice("emulator-5554");// Testar dispositivo
			// Android
			adView.loadAd(request);
		}

	}

	// Slavar um novo registro
	public void salvar() {

		// Abre banco de dados

		descricao_grupo = tvDescricaoGrupo.getText().toString();

		// Verifica se campos vazios
		if (descricao_grupo.equals("")) {

			tvDescricaoGrupo.setError(getResources().getString(
					R.string.campoNaoNulo));
			// Toast toast = Toast.makeText(this, "Preencha todos os campos ! ",
			// Toast.LENGTH_SHORT);
			// toast.show();

		} else {

			if (!descricao_grupo.equalsIgnoreCase("SMS.BANCOS")) {
				BancoDados bd = new BancoDados(this, false);

				// Gera novo Registro
				if (acao.equals("novo")) {
					Boolean salvo = bd.GravaRegistroGrupo(id_grupo,
							descricao_grupo, 0.0);

					// limpa campos
					tvDescricaoGrupo.setText("");
					descricao_grupo = null;
					saldo_conta = null;

					// Volta valores pra tela principal

					Intent it = new Intent();
					// Seta a mensagem de retorno
					it.putExtra("atualizar", "sim");
					// Seta o status do resultado e a Intent
					setResult(1, it);
					// Fim desta activity
					finish();

					// fecha o banco de dados
					bd.fechar();
				}// fim novo registro

				if (acao.equals("editar")) {
					Boolean salvo = bd.EditarRegistroGrupo(id_grupo,
							descricao_grupo);
					// Volta valores pra tela principal

					// limpa campos
					tvDescricaoGrupo.setText("");
					descricao_grupo = null;
					Intent it = new Intent();

					// Seta a mensagem de retorno
					it.putExtra("atualizar", "sim");

					// Seta o status do resultado e a Intent
					setResult(1, it);

					// Fim desta activity
					finish();

					// fecha o banco de dados
					bd.fechar();
				}
			} else {

				tvDescricaoGrupo.setError("System reserved");
			}

		}

	}

	// AO DESTRUIR
	@Override
	public void onDestroy() {
		if (adView != null) {
			adView.destroy();
		}
		super.onDestroy();
	}

	@Override
	protected void onPause() {
		// TODO Auto-generated method stub
		super.onPause();
		if (adView != null) {
			adView.pause();
		}

	}

	@Override
	protected void onResume() {
		// TODO Auto-generated method stub
		super.onResume();
		if (adView != null) {
			adView.resume();
		}
	}

}
